package 作业;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 第一题：分析以下需求，并用代码实现
 * 训练目标：
 * 掌握java中字节输入流和字节输出流的基本使用，以及理解其在实际开发中的应用
 * 需求背景：
 * 为了保证磁盘文件数据的安全性，就需要对原始文件进行加密存储，再使用的时候再对其进行解密处理。加密解密原
 * 理：对原始文件中的每一个字节数据进行更改，然后将更改以后的数据存储到新的文件中。
 * 需求描述：
 * 编写一个加密解密程序。
 * 实现提示：
 * 1、通过字节输入流读取原始文件中的每一个字节数据然后对其进行处理
 * 2、通过字节输出流将处理以后的字节数据写入到另外一个文件中
 * 3、对字节数据的处理方式可以使用异或运算符异或一个数
 * 4、为了提高加解密的效率可以考虑使用高效的字节输入和输出流
 */
public class 解密加密程序 {
    public static void main(String[] args) {
        try (
                FileInputStream fis = new FileInputStream("Day10_file_io\\a.txt");
                FileOutputStream fos = new FileOutputStream("Day10_file_io\\b.txt");
        ) {
            int b;
            while ((b = fis.read()) != -1) {
                fos.write(b ^ 5);
            }
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    }

